Cara Menjaga Keamanan Situs OJS
Cara Menjaga Keamanan Situs OJS dari Serangan SEO Injection dan Konten Judi Online

Cara Menjaga Keamanan Situs OJS dari Serangan SEO Injection dan Konten Judi Online
Sistem Open Journal Systems (OJS) telah menjadi tulang punggung publikasi ilmiah di seluruh dunia, termasuk di Indonesia. Platform open-source ini memungkinkan institusi akademik mengelola jurnal secara profesional, mulai dari proses submission hingga publikasi online. Namun, popularitas OJS juga menarik perhatian para pelaku kejahatan siber yang melihat celah untuk mengeksploitasi reputasi domain institusi pendidikan.
Sepanjang tahun 2025 hingga awal 2026, Badan Siber dan Sandi Negara (BSSN) mencatat lonjakan signifikan serangan siber yang menargetkan situs-situs pemerintah dan institusi pendidikan. Modusnya beragam, mulai dari defacement, injeksi malware, hingga yang paling berbahaya: SEO injection yang menyisipkan konten judi online (judol) ke dalam halaman jurnal ilmiah . Universitas Negeri Gorontalo (UNG) dan LSPR Institute of Communication and Business menjadi contoh nyata bagaimana serangan ini mampu melumpuhkan sistem publikasi dan merusak reputasi akademik yang telah dibangun bertahun-tahun .
Dalam panduan komprehensif ini, kita akan membahas secara sistematis Cara Menjaga Keamanan Situs OJS dari berbagai ancaman, dengan fokus khusus pada pencegahan SEO injection dan penyisipan link judi. Materi ini disusun berdasarkan pengalaman langsung penanganan insiden di berbagai institusi dan praktik terbaik dari para ahli keamanan OJS. Tujuannya sederhana: membantu Anda melindungi aset digital akademik yang berharga.
Memahami Lanskap Ancaman OJS di Era Digital 2026
Sebelum membahas langkah-langkah teknis, penting untuk memahami mengapa OJS menjadi target empuk peretas. Dengan pemahaman ini, strategi keamanan yang kita bangun akan lebih terarah dan efektif.
Karakteristik OJS yang Menjadi Titik Rawan
OJS memiliki arsitektur yang kompleks, terdiri dari:
-
Ribuan baris kode PHP yang terus berkembang dari waktu ke waktu
-
Database MySQL yang menyimpan metadata artikel, informasi pengguna, dan konfigurasi sistem
-
Sistem file terstruktur untuk menyimpan artikel PDF, dokumen pendukung, dan aset publik
-
Plugin tambahan yang menambah fungsionalitas namun sering menjadi pintu masuk serangan
Setiap komponen ini berpotensi memiliki celah keamanan yang dapat dieksploitasi. Yang membuatnya semakin rumit adalah bahwa OJS sering dijalankan di lingkungan akademik dengan sumber daya teknis terbatas, sehingga pembaruan keamanan kerap tertunda.
Pola Serangan SEO Injection pada OJS
SEO injection adalah teknik di mana peretas menyisipkan kode berbahaya untuk memanipulasi hasil pencarian. Pada OJS, serangan ini umumnya mengikuti pola berikut:
-
Eksploitasi celah keamanan pada plugin atau versi OJS yang sudah usang
-
Pemasangan backdoor yang memberi akses jarak jauh ke server
-
Modifikasi file inti seperti
bootstrap.inc.phpatau file tema -
Penyisipan konten judi di halaman yang tidak mencolok, seperti halaman arsip atau hasil pencarian
-
Penambahan aturan cloaking yang menampilkan konten berbeda untuk Googlebot
Yang paling berbahaya, semua perubahan ini tidak terlihat oleh pengunjung biasa. Baru ketika Google mulai mengindeks judul “Slot Gacor Maxwin” atau “Casino Online Terpercaya” di jurnal ilmiah Anda, masalahnya terkuak .
Dampak Nyata yang Pernah Terjadi
Kasus Universitas Negeri Gorontalo (Maret 2025)
Peretas berhasil menyisipkan malware dan menghapus file-file publik di sistem OJS. Akibatnya, tampilan jurnal rusak dan file artikel yang telah dipublikasikan hilang. Tim teknis UNG harus bekerja cepat memulihkan dari backup, namun backup hanya tersedia hingga 24 Februari, sehingga artikel yang terbit setelahnya tidak terselamatkan .
Kasus LSPR Institute (September-Desember 2025)
Serangan malware judi online memaksa LSPR menonaktifkan sistem OJS selama empat bulan penuh. Data submission dari Maret 2025 hilang, dan proses pemulihan berlangsung lama karena kerusakan yang parah .
Kasus Dynamics of Rural Society Journal UNG (Agustus 2025)
Jurnal ini mengalami defacement dengan konten judi “slot gacor”. Fitur submission, static page, dan akses PDF tidak berfungsi. Penulis dari luar negeri mengeluh karena jurnal yang sebelumnya terpercaya tiba-tiba tidak profesional .
Dari ketiga kasus ini, ada pola yang sama: pencegahan selalu lebih baik daripada pemulihan. Satu jam untuk mengamankan sistem hari ini dapat menyelamatkan Anda dari berminggu-minggu downtime dan kerusakan reputasi di masa depan.
7 Pilar Utama Cara Menjaga Keamanan Situs OJS
Berdasarkan analisis insiden dan praktik terbaik dari para ahli, berikut adalah tujuh pilar utama yang harus Anda bangun untuk melindungi OJS.
Pilar 1: Fondasi Server yang Kokoh
Keamanan OJS dimulai dari level server. Ibarat rumah, server adalah fondasi dan struktur bangunannya. Jika fondasi rapuh, pintu dan jendela terkuat sekalipun tidak akan berarti.
Pilih Infrastruktur yang Tepat
-
Hindari shared hosting murah yang mencampur banyak pengguna dalam satu server. Jika satu website diretas, yang lain bisa ikut terdampak.
-
Gunakan VPS atau dedicated server yang memberikan kontrol penuh atas konfigurasi keamanan.
-
Pertimbangkan hosting khusus OJS yang sudah dioptimasi untuk kebutuhan jurnal ilmiah.
Hardening Server dengan Langkah-Langkah Berikut:
-
Nonaktifkan fungsi PHP berbahaya di file
php.ini:disable_functions = exec,passthru,shell_exec,system,proc_open,popen
Fungsi-fungsi ini sering digunakan peretas untuk menjalankan perintah sistem dari kode PHP .
-
Aktifkan ModSecurity dengan OWASP Core Rule Set untuk memblokir pola serangan umum seperti SQL injection dan XSS .
-
Pasang pemindai malware tingkat server seperti ImunifyAV yang secara otomatis mendeteksi file mencurigakan .
Pilar 2: Pengaturan Izin File yang Tepat
Kesalahan konfigurasi izin file adalah salah satu celah keamanan paling umum. Izin yang terlalu longgar memungkinkan file ditulis atau dieksekusi oleh pihak yang tidak berwenang.
Aturan Dasar Izin File:
-
File biasa:
644(owner bisa baca/tulis, lainnya hanya baca) -
Folder:
755(owner bisa baca/tulis/eksekusi, lainnya hanya baca/eksekusi) -
File
config.inc.php:600atau400(hanya owner yang bisa akses)
Proteksi Khusus untuk File Sensitif:
Tambahkan aturan di file .htaccess di root OJS:
<FilesMatch "(?i)(config.inc.php|composer\.json|composer\.lock|\.env)">
Require all denied
</FilesMatch>
Proteksi Folder Upload:
Di folder files_dir atau direktori publik, tambahkan file .htaccess yang memblokir eksekusi skrip PHP:
<FilesMatch "\.(php|phtml|php5|php7|php8)$">
Require all denied
</FilesMatch>
Pilar 3: Isolasi File Artikel dari Direktori Publik
Ini adalah langkah kritis yang sering diabaikan. Secara default, OJS menyimpan file artikel di folder files_dir yang bisa dikonfigurasi. Jika folder ini berada di dalam direktori web (misalnya public_html/files), ada risiko file dapat diakses langsung melalui browser.
Konfigurasi Ideal:
Di file config.inc.php, atur:
files_dir = "/home/nama-user/ojs-files"
Pastikan path ini berada di luar direktori web (public_html atau www). Dengan cara ini, meskipun ada kesalahan konfigurasi server, file artikel tidak dapat diakses langsung dari URL .
Pilar 4: Hardening Konfigurasi OJS
Setelah server aman, giliran OJS sendiri yang perlu diperkuat. Banyak serangan berhasil karena pengaturan default yang longgar.
Nonaktifkan Pendaftaran Pengguna Publik
Masuk ke Settings > Website > Setup > User Registration, pilih opsi:
-
“Disabled” jika tidak ada pendaftaran publik
-
“Manager must approve account” jika perlu persetujuan manual
Ini mencegah bot membuat akun palsu secara otomatis.
Batasi Hak Akses dengan Prinsip Least Privilege
-
Jangan berikan peran Site Admin atau Journal Manager kecuali benar-benar diperlukan.
-
Hapus akun pengguna yang sudah tidak aktif.
-
Audit secara berkala siapa saja yang memiliki akses ke sistem.
Batasi Jenis File yang Dapat Diunggah
Gunakan plugin Control Public Files atau konfigurasi manual untuk hanya mengizinkan format aman:
-
Dokumen:
.pdf,.docx,.odt -
Data pendukung:
.csv,.xlsx(dengan pengawasan) -
Gambar:
.jpeg,.png,.tiff
Larang keras ekstensi berbahaya seperti .php, .js, .exe, atau arsip .zip dari sumber tidak dikenal.
Audit dan Perbarui Plugin Secara Rutin
-
Hanya gunakan plugin dari sumber resmi (PKP Plugin Gallery).
-
Hapus plugin yang tidak lagi digunakan—plugin tidak aktif pun tetap ada di server dan berpotensi dieksploitasi.
-
Perbarui plugin ke versi terbaru segera setelah rilis.
Pilar 5: Otentikasi Kuat dan Lapisan Keamanan Tambahan
Kata sandi adalah garis pertahanan pertama. Namun, di era serangan brute force yang semakin canggih, kata sandi saja tidak cukup.
Terapkan Kebijakan Kata Sandi Kuat
-
Minimal 12 karakter
-
Kombinasi huruf besar, huruf kecil, angka, dan simbol
-
Tidak menggunakan kata yang mudah ditebak (nama jurnal, tahun, dll.)
-
Wajib diganti secara berkala
Aktifkan CAPTCHA pada Formulir Login dan Registrasi
Google reCAPTCHA efektif memblokir bot. Konfigurasi dilakukan di file config.inc.php dengan menambahkan site key dan secret key dari Google .
Pertimbangkan Autentikasi Dua Faktor (2FA)
Untuk pengelola dengan akses kritis (site admin, server admin), 2FA memberikan lapisan keamanan ekstra. Beberapa plugin OJS seperti OJT Advanced Security menyediakan fitur ini .
Paksa Penggunaan HTTPS
Di config.inc.php, pastikan:
force_ssl = On force_login_ssl = On
Ini memastikan semua komunikasi terenkripsi dan melindungi kredensial login dari penyadapan.
Pilar 6: Deteksi Dini dan Monitoring Berkelanjutan
Mendeteksi serangan lebih awal bisa menyelamatkan Anda dari kerusakan besar. Semakin cepat Anda tahu, semakin cepat Anda bisa bertindak.
Pantau Google Search Console Secara Rutin
Google Search Console adalah alat paling ampuh untuk mendeteksi SEO injection. Perhatikan indikator berikut:
-
Pemilik baru yang tidak dikenal di pengaturan kepemilikan
-
Peringatan keamanan dari Google
-
Lonjakan atau penurunan drastis jumlah halaman terindeks
-
Kueri pencarian aneh yang mengarah ke jurnal Anda (misalnya “slot gacor”, “casino online”)
Periksa File Verifikasi Google Palsu
Peretas sering menambahkan file googleXXXX.html di root OJS untuk mengambil alih kepemilikan Search Console. Cek secara berkala apakah ada file semacam ini yang tidak Anda buat .
Lakukan Pemindaian File Berkala dengan Perintah Grep
Gunakan perintah berikut di server untuk mencari pola mencurigakan:
# Cari kata kunci judi grep -r "slot\|casino\|judi\|togel" --include="*.php" . # Cari fungsi berbahaya yang sering digunakan peretas grep -r "eval(" --include="*.php" . grep -r "base64_decode(" --include="*.php" . grep -r "is_bot(" --include="*.php" .
Pantau Log Aktivitas Server
-
Periksa error log setiap 1-2 minggu
-
Pantau log akses untuk pola tidak wajar (misalnya banyak request ke file yang tidak ada)
-
Di OJS, gunakan plugin pencatat aktivitas jika tersedia
Gunakan Layanan Pemantauan Keamanan
Pertimbangkan layanan seperti OJT Advanced Security yang menawarkan:
-
Keyword injection protection
-
Metadata change protection
-
IP address blocking
-
User agent protection
Pilar 7: Backup Terencana dan Teruji
Bencana pasti akan datang. Yang membedakan adalah seberapa siap Anda menghadapinya. Backup yang baik adalah jaring pengaman terakhir.
Frekuensi Backup
-
Backup harian untuk jurnal dengan submission aktif
-
Backup mingguan minimal untuk semua jurnal
-
Backup sebelum setiap perubahan besar (update versi, migrasi server, instalasi plugin baru)
Komponen Backup
Pastikan backup mencakup:
-
Semua file OJS (termasuk
files_dir) -
Database MySQL
-
File konfigurasi
config.inc.php
Lokasi Penyimpanan
Jangan simpan backup di server yang sama. Jika server diretas, backup ikut terinfeksi. Simpan di:
-
Cloud storage (Google Drive, Dropbox, Amazon S3)
-
Server berbeda
-
Media fisik yang diamankan
Uji Coba Restorasi Secara Berkala
Backup yang tidak bisa direstorasi sama sekali tidak berguna. Lakukan simulasi restorasi setiap 3-6 bulan untuk memastikan:
-
File backup tidak korup
-
Prosedur restorasi berjalan lancar
-
Data benar-benar dapat dipulihkan
Langkah Konkret Pemulihan Pasca Serangan
Jika Anda menemukan tanda-tanda OJS telah diretas, ikuti protokol darurat ini.
Fase Darurat: Isolasi dan Amankan
-
Putuskan akses internet sementara jika memungkinkan untuk mencegah penyebaran malware
-
Ganti semua kata sandi: server, database, akun OJS, email terkait
-
Aktifkan mode maintenance di OJS untuk memberi tahu pengunjung bahwa sistem sedang dalam perbaikan
-
Catat semua gejala untuk membantu investigasi
Fase Investigasi: Identifikasi Sumber dan Dampak
-
Periksa Google Search Console:
-
Hapus pemilik tidak dikenal
-
Catat halaman bermasalah yang dilaporkan Google
-
-
Cari file mencurigakan dengan perintah grep untuk kata kunci judi
-
Periksa file inti OJS yang sering menjadi target:
bootstrap.inc.php,index.phpdi berbagai direktori -
Cek cron job untuk tugas terjadwal mencurigakan
-
Bandingkan dengan instalasi bersih menggunakan perintah
diffjika ada
Fase Pembersihan: Eliminasi Malware dan Kembalikan Integritas
-
Hapus file mencurigakan yang teridentifikasi
-
Hapus file verifikasi Google palsu di root
-
Bersihkan database dari konten spam di tabel metadata, abstrak, dan custom fields
-
Restorasi dari backup bersih jika tersedia
-
Update OJS ke versi terbaru (migrasi ke OJS 3 jika masih menggunakan versi lama)
Fase Pemulihan: Kembali Beroperasi dengan Lebih Aman
-
Terapkan semua langkah pencegahan yang telah dibahas
-
Pantau secara intensif selama beberapa minggu ke depan
-
Minta peninjauan ulang ke Google melalui Search Console setelah yakin bersih
-
Komunikasikan dengan stakeholder (penulis, reviewer) tentang status pemulihan
Checklist Keamanan OJS Bulanan
Untuk memudahkan implementasi, berikut adalah checklist yang bisa Anda gunakan setiap bulan:
Minggu 1: Pemeriksaan Dasar
-
Periksa Google Search Console untuk notifikasi keamanan
-
Cek apakah ada file
googleXXXX.htmlbaru di root -
Pastikan semua kata sandi masih aman (tidak ada indikasi kebocoran)
Minggu 2: Pemindaian Teknis
-
Jalankan perintah grep untuk kata kunci judi
-
Periksa log error server
-
Cek file
config.inc.phpmasih aman (permission 600)
Minggu 3: Pembaruan Sistem
-
Periksa apakah ada versi OJS baru
-
Update plugin ke versi terbaru
-
Hapus plugin yang tidak digunakan
Minggu 4: Backup dan Evaluasi
-
Lakukan backup penuh dan simpan di lokasi off-site
-
Uji satu file backup untuk memastikan tidak korup
-
Evaluasi apakah ada aktivitas mencurigakan selama sebulan terakhir
Kesimpulan: Keamanan OJS adalah Proses Berkelanjutan
Open Journal Systems adalah platform yang andal untuk publikasi ilmiah, tetapi tidak kebal terhadap serangan siber. Insiden di berbagai perguruan tinggi sepanjang 2025-2026 menjadi pengingat pahit bahwa keamanan harus menjadi prioritas utama, bukan sekadar formalitas.
Cara Menjaga Keamanan Situs OJS yang efektif membutuhkan pendekatan holistik: dari fondasi server yang kokoh, konfigurasi file yang tepat, isolasi file artikel, otentikasi kuat, monitoring berkelanjutan, hingga backup yang terencana. Tidak ada satu langkah pun yang bisa diabaikan, karena peretas selalu mencari mata rantai terlemah.
Yang paling penting, keamanan bukanlah tujuan akhir, melainkan proses berkelanjutan. Ancaman terus berevolusi, dan strategi pertahanan Anda juga harus terus berkembang. Dengan membangun budaya keamanan di lingkungan pengelola jurnal—mulai dari administrator, editor, hingga penulis—Anda menciptakan lapisan pertahanan manusia yang tidak kalah penting dari teknologi.
Mulailah hari ini. Audit sistem OJS Anda, periksa apakah files_dir sudah di luar direktori web, pastikan config.inc.php tidak bisa dibaca publik, dan backup data Anda sekarang juga. Karena ketika serangan datang, hanya persiapan yang bisa menyelamatkan Anda.



